今天正式完成 Patient(患者)、Physiotherapist(物理治療師)、Doctor(醫師)
三個角色專屬的 API 與分析服務,系統後端邁入智慧化分析與角色分工的新階段!🎉
PatientDashboardService
位於 src/services/PatientDashboardService.js,負責處理患者儀表板的所有商業邏輯,
內部包含:
getActiveTasks(patientId):查詢進行中的復健任務並計算完成比例getWeeklyStats(patientId):彙整一週的運動次數、疼痛變化、活動度getAchievements(patientId):計算徽章與里程碑(使用 MongoDB Aggregation Pipeline)getProgressTrends(patientId):分析長期進展趨勢並回傳統計資料資料處理重點
$match + $group 做分週統計,減少前端計算負擔GET /api/patient/dashboard:取得個人進度與統計GET /api/patient/achievements:取得徽章與成就這些路由會先經過
authMiddleware驗證,再調用PatientDashboardService的方法。
PhysiotherapistWorkflowService
位於 src/services/PhysiotherapistWorkflowService.js,包含:
getPatientOverview(therapistId):列出治療師名下的所有患者,附帶風險評分getWorkloadStats(therapistId):計算當週工作量、任務完成率與截止警示getActivityFeed(therapistId):回傳患者最新的康復活動記錄generatePerformanceMetrics(therapistId):彙整表現指標,用於後續報表或儀表板圖表程式實作重點
populate 載入患者與任務關聯資料,減少多次查詢limit 與 skip 支援分頁查詢,提升大型資料集效能GET /api/therapist/patients:取得患者總覽與風險指標GET /api/therapist/workload:回傳治療師工作量與效能統計GET /api/therapist/activity:患者活動即時動態DoctorOversightService
位於 src/services/DoctorOversightService.js,功能包含:
getPopulationHealth(doctorId):跨治療師的患者群體健康監測getTreatmentOutcomes(doctorId):依療程類別分析治療成果getProviderPerformance(doctorId):比較不同治療師的績效指標getCriticalAlerts(doctorId):回傳需要立即關注的高風險患者清單程式實作重點
$facet 與 $lookup 做多維度報表輸出GET /api/doctor/overview:群體健康與療效分析GET /api/doctor/alerts:重大風險警示| 角色 | Method | Endpoint | 功能 | 
|---|---|---|---|
| Patient | GET | /api/patient/dashboard | 個人進度統計 | 
| Patient | GET | /api/patient/achievements | 成就徽章 | 
| Physiotherapist | GET | /api/therapist/patients | 患者總覽與風險 | 
| Physiotherapist | GET | /api/therapist/workload | 工作量統計 | 
| Physiotherapist | GET | /api/therapist/activity | 即時動態 | 
| Doctor | GET | /api/doctor/overview | 群體健康與療效 | 
| Doctor | GET | /api/doctor/alerts | 重大風險警示 | 
Service Layer 設計:
三個角色皆採獨立的 Service Class,清楚劃分商業邏輯,方便測試與維護。
資料庫最佳化:
權限驗證:
回傳格式統一:
所有 API 回傳 { success: boolean, data: {...}, message?: string },方便前端直接渲染。
完成這三個角色的 API 後,系統已具備:
這些程式碼奠定了系統進入臨床決策支援的基礎,接下來的目標將是
前端儀表板的可視化呈現與資料查詢效能優化,
讓使用者能即時獲取關鍵指標,真正實現「資料驅動復健決策」。
專案Github Repo : https://github.com/CHING-WENLAI1031/Rehab_Tracker